This invention relates to providing echo in the form of user-discernible system response to user-initiated actions which require such response within bounded response times. More particularly, the invention is in the field of multi-user systems wherein user access to an application program in a host computer is obtained through workstations remote from the host computer, and responses to certain user actions in the context of an application program are provided by a protocol which is proximate to the user instead of by the remote application program.
The mechanization of modern offices has led to multi-user systems in which a plurality of user workstations are connected to a single host computer that provides application program processing services to one or more of the workstations. Typically, the workstations are geographically distributed throughout an organization and communicate through a centralized communication facility with the host. In order to provide specific application program services to the workstations, the host is typically time-shared among the workstations.
Modern application programs are characteristically event-driven processes in which interaction occurs between the program and the user. In these cases, interaction is most frequently afforded through a workstation terminal that includes a variety of user input devices and a graphical output device such as a CRT. The user inputs commands and parameters to the application program through the input devices and observes the program responses on the screen of the CRT. When described as event-driven, it is understood that the application process waits for a specific user-initiated action before it undertakes a computation based on user input and provides a response to the user via the CRT.
User actions or events may cause computational response from an application program. Such events follow, for example, entry of a command or depression of an ENTER or RETURN key on a workstation keyboard. It is to be understood that other user-initiated actions do not require computational response from an application program. Such actions include entry of characters typed on a keyboard that form a command, implement cursor movement, or signify sectors of a display tableau by highlighting. Most user actions generally do require immediate notification to the user of registration of the current parameter provided by the input device operated by the user.
In order to apprise the user when an action is registered in an interactive system, feedback is provided in the form of user-discernible responses to the actions. Such responses are termed "echoes." The response to a user action requiring computation is provided by the application program as an indication of the outcome of the requested computation. For example, in a spreadsheet program, the application program may provide the outcome of a calculation based on a formula and parameters provided by the user.
The echo response of a system to user-initiated actions is normally provided by an output device at the workstation. Thus, characters entered on a keyboard are echoed to the user by being displayed on the CRT screen, and operation of cursor control through a keyboard or a mouse is echoed by moving the position of a displayed cursor. Other echo responses include highlighting selected commands, movable objects, or "cells" of a CRT display into which a cursor has been moved.
In most prior art systems, the echo response to user action is typically the responsibility of the application program, which acts through a graphic display service to generate a graphics display on a CRT. A typical graphic service is described in Foley and Van Dam, "Fundamentals Of Interactive Computer Graphics," Addison-Wesley, 1982, at pp. 35-90. In most cases, the application program generates low-level descriptions of the composition and location of objects and text to be displayed and passes them to the display service. The display service translates the descriptions into control signals which cause the CRT to display the objects and text at the indicated locations. Updating or changing an object or location as an echo of a user-initiated action thus normally follows a pathway to the application program and back to the display service.
In the remote workstation environment, where the application program is at a distance from the user input devices, display service, and CRT, the roundtrip between the workstation and the host computer where the application program is located can consume a considerable amount of time. Further, in the case where a plurality of workstations access a single host computer, the roundtrip time for the same echo response at the same workstation can vary as a result of contention for host resources.
Lengthy and variable delay between a user-initiated action and an application program response can be tolerated in the case of computation-initiating actions as a necessary concomitant of multi-user system organization. However, in the case of user actions that require no computation, such as text editing, cursor movement, and highlighting, for example, long or variable delay in system response can seriously detract from the efficiency of program utilization. Indeed, the echo response should be immediate or instantaneous. Therefore, a need exists in multi-user systems in which remote workstations access a host computer for application program services to reduce the time used by the system in responding to user-initiated actions that require immediate feedback to the user.
In other graphics processing systems, echoing can be the responsibility of terminal hardware and/or operating system software at the terminal. In the former regard, hardware echoing requires terminal hardware dedicated to a specific application; if another application is desired, another set of terminal hardware must be used.
Operating system echoing is represented by a minicomputer operating system such as UNIX (UNIX is a trademark of Bell Laboratories). In these systems, echoing is typically implemented at a very low level of abstraction in much the same manner as an output device driver. As in the case of hardware echoing, operating system echoing incorporates a set of output-device-specific response functions. This results in a system which, from the standpoint of the application user, is inflexible and extremely difficult to adapt to the needs and proclivities of the user. Such systems are not intended to be alterable at the point where a graphics application program interfaces with the system's graphics processor.
An object of the invention is therefore to reduce the time required for an echo response to be made to user-initiated actions in a distributed multi-user system having a central computer which provides application process services to the distributed users.